iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
Mobile Development

Flutter基礎入門系列 第 9

【Day 09】設計的第一步驟:介面規劃與功能設定

  • 分享至 

  • xImage
  •  

懂了一些基本的Flutter概念後,今天來講點其他東西吧!


還記得第一篇中,筆者學習Flutter的原因,是想製作一個目前還未有人製作,符合我心目中所想的行程規劃app嗎?這篇中,筆者將規劃並列出這個app所擁有的功能、介面構想,以及接下來的日子該學習並實作的內容。以下內容包含筆者所繪製的簡略草圖,不是那麼漂亮敬請包涵m(_ _)m

主要頁面設計

https://ithelp.ithome.com.tw/upload/images/20240923/20169446g6RpjmIoKp.jpg
圖中下方有一排選項,是這個應用程式的頁面選單。依序為:

  1. TimeTable時刻表:規劃與瀏覽
    使用者的行程時刻表,其中包含固定行程(Schedule)以及待辦事項(Todo)
  2. Todo待辦事項
  3. Schedule行程表:固定事項
  4. 設定
  5. 隱藏頁面選單(非頁面):將介面簡化

在這個應用程式當中,各個事項將以Block方塊的形式呈現在畫面上。
因為這次鐵人賽僅有30天,因此會優先製作主要功能,並將他們列在下方,而其他次要功能則將在本文最末端的Roadmap一一列出。

TimeTable

https://ithelp.ithome.com.tw/upload/images/20240923/20169446t4XQWSEAGd.jpg
此頁面是程式的預設開啟頁面,使用者可以在這裡瀏覽已經安排好的行程,以及將右側的Todo待辦事項拖拉進入表中。受畫面大小限制,以及避免內容太小不易閱讀,時刻表的縱橫軸皆可以捲動scroll。
在時刻表右側有一行是所有還未安排好執行時間的待辦事項,並以他們的最後完成期限deadline排序。考量到可能會有許多項目,因此筆者打算加上一個搜尋/過濾的功能,以快速查找到想要的項目。

Todo待辦事項

https://ithelp.ithome.com.tw/upload/images/20240923/20169446PNs5OSuyLf.jpg
將所有待辦事項依使用者自訂的類別以條列式列出,且為了方便操作及閱讀,各類別可以收折起來。
右下角有個懸浮按鈕,是用於新增待辦事項,並讓使用者填入他們的內容與屬性,包括:

  1. 類別category
  2. 名稱name
  3. 預計花費時間estimated time
  4. 最後完成日期deadline
  5. 備註notes

Schedule行程表

https://ithelp.ithome.com.tw/upload/images/20240923/201694464k8eai5vjW.jpg
這一頁是用於設定一些固定在同時間發生的相同事件,像是課程、運動等等。顯示的方式類似於TimeTable,都是縱橫皆可捲動的grid,而右下角的懸浮按鈕則是類似於Todo的新增,能夠在表格中加入新的固定行程。Schedule的新增將會包含以下項目:

  1. 名稱name
  2. 執行星期(mon, tue, wed...)
  3. 開始時間starting time
  4. 結束時間ending time
  5. 備註notes

設定

程式的一些細節設定,因這個是筆者初次製作Flutter應用程式,不確定會花費多少時間在製作上,故此部份暫時可能不會有任何可選擇的選項。

Roadmap

p.s. 粗體為項目主類別,非優先、非主要項目將以斜體顯示

Page Menu

  • [ ] TimeTable
  • [ ] Todo
  • [ ] Schedule
  • [ ] Setting

TimeTable

  • [ ] Scrollable Grid
    • [ ] pinch to increase/decrease time interval
  • [ ] Draggable Blocks
    • [ ] Search
    • [ ] Filter
    • [ ] tap to edit block
    • [ ] choose color

Todo

  • [ ] View items
    • [ ] Foldable Category
      • [ ] choose icon
      • [ ] left swipe to edit name
      • [ ] right swipe to delete
      • [ ] Drag to change order
      • [ ] choose color
    • [ ] Todo
      • [ ] left swipe to edit
      • [ ] right swipe to delete
      • [ ] Drag to change order
      • [ ] base color depending on category
      • [ ] Darken color depending on deadline
  • [ ] Create New Todo
    • [ ] Category (choose or add new)
    • [ ] Name (text)
    • [ ] estimated time (dd-hh:mm)
    • [ ] deadline (mm/dd hh:mm)
    • [ ] notes (text)
    • [ ] save image and files
  • [ ] Search

Schedule

  • [ ] Scrollable Grid (minor changes to timetable)
  • [ ] Blocks (using timetable's, not draggable)
  • [ ] Create New (using Todo's)
    • [ ] Name (text)
    • [ ] Weekday (choose)
    • [ ] start time (hh:mm)
    • [ ] end time (hh:mm)
    • [ ] notes (text)
    • [ ] save image and files
    • [ ] category & base color

Setting

  • [ ] language
  • [ ] font size
  • [ ] time style 24:00 or 12:00 a.m.
  • [ ] color/theme
  • [ ] default time interval for Grids
  • [ ] feedback to developer
  • [ ] backup data

明天將從主要介面開始設計,如果有任何想說的都歡迎留言與email。最後就是筆者的一些廢話~

列出了好多可以做的事情,接下來要開始忙了_(:3 」∠ )


上一篇
【Day 08】Flutter必備技能:Dart的語法
下一篇
【Day 10】開始製作app! - 程式的框架設計與底部頁面選擇
系列文
Flutter基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言